قابلیت ارزیابی تنبل JavaScript Module Federation را برای عملکرد بهینه برنامههای وب و تجربه کاربری بهتر کشف کنید. مزایا و پیادهسازی آن را بیاموزید.
ارزیابی تنبل JavaScript Module Federation: حل ماژول بر حسب تقاضا
در چشمانداز همواره در حال تغییر توسعه وب، بهینهسازی عملکرد و بهبود تجربه کاربری از اهمیت بالایی برخوردار است. JavaScript Module Federation، یک ویژگی قدرتمند معرفی شده در Webpack 5، رویکردی انقلابی برای ساخت میکروسرویسهای فرانتاند (micro frontends) و ترکیب برنامهها از ماژولهای قابل استقرار مستقل ارائه میدهد. یک جزء کلیدی Module Federation، توانایی آن در انجام ارزیابی تنبل (lazy evaluation) است که با نام حل ماژول بر حسب تقاضا (on-demand module resolution) نیز شناخته میشود. این مقاله به عمق ارزیابی تنبل در Module Federation میپردازد و مزایا، استراتژیهای پیادهسازی و کاربردهای واقعی آن را بررسی میکند. این رویکرد منجر به بهبود عملکرد برنامه، کاهش زمان بارگذاری اولیه و یک پایگاه کد ماژولارتر و قابل نگهداریتر میشود.
درک JavaScript Module Federation
Module Federation یک برنامه جاوااسکریپت را قادر میسازد تا کد را از سایر برنامههای مستقل استقرار یافته (برنامههای راه دور) در زمان اجرا بارگذاری کند. این معماری به تیمها اجازه میدهد تا روی بخشهای مختلف یک برنامه بزرگتر بدون وابستگی شدید کار کنند. ویژگیهای کلیدی عبارتند از:
- جداسازی (Decoupling): امکان توسعه، استقرار و نسخهبندی مستقل ماژولها را فراهم میکند.
- ترکیب زمان اجرا (Runtime Composition): ماژولها در زمان اجرا بارگذاری میشوند و انعطافپذیری را در معماری برنامه ارائه میدهند.
- اشتراکگذاری کد (Code Sharing): اشتراکگذاری کتابخانهها و وابستگیهای مشترک بین ماژولهای مختلف را تسهیل میکند.
- پشتیبانی از Micro Frontend: امکان ایجاد میکروسرویسهای فرانتاند را فراهم میکند، که به تیمها اجازه میدهد اجزای خود را به صورت مستقل توسعه و استقرار دهند.
Module Federation از تقسیم کد سنتی و واردات پویا از چندین جهت کلیدی متفاوت است. در حالی که تقسیم کد بر شکستن یک برنامه واحد به تکههای کوچکتر تمرکز دارد، Module Federation به برنامههای مختلف اجازه میدهد تا کد و منابع را به صورت یکپارچه به اشتراک بگذارند. واردات پویا مکانیزمی برای بارگذاری ناهمزمان کد فراهم میکند، در حالی که Module Federation توانایی بارگذاری کد از برنامههای راه دور را به شیوهای کنترلشده و کارآمد ارائه میدهد. مزایای استفاده از Module Federation به ویژه برای برنامههای وب بزرگ و پیچیده قابل توجه است و به طور فزایندهای توسط سازمانها در سراسر جهان پذیرفته میشود.
اهمیت ارزیابی تنبل
ارزیابی تنبل، در زمینه Module Federation، به این معنی است که ماژولهای راه دور بلافاصله هنگام راهاندازی برنامه بارگذاری *نمیشوند*. در عوض، آنها بر حسب تقاضا، تنها زمانی که واقعاً مورد نیاز هستند، بارگذاری میشوند. این در مقابل بارگذاری مشتاقانه (eager loading) است، جایی که همه ماژولها از ابتدا بارگذاری میشوند، که میتواند به طور قابل توجهی بر زمان بارگذاری اولیه و عملکرد کلی برنامه تأثیر بگذارد. مزایای ارزیابی تنبل متعدد است:
- کاهش زمان بارگذاری اولیه: با به تعویق انداختن بارگذاری ماژولهای غیرضروری، زمان بارگذاری اولیه برنامه اصلی به طور قابل توجهی کاهش مییابد. این منجر به زمان تعامل سریعتر (TTI) و تجربه کاربری بهتر میشود. این امر به ویژه برای کاربرانی با اتصالات اینترنتی کندتر یا دستگاههای کمتر قدرتمند اهمیت دارد.
- عملکرد بهبود یافته: بارگذاری ماژولها تنها زمانی که مورد نیاز هستند، میزان جاوااسکریپتی را که باید در سمت کلاینت تجزیه و اجرا شود، به حداقل میرساند و منجر به بهبود عملکرد، به ویژه در برنامههای بزرگتر میشود.
- استفاده بهینه از منابع: بارگذاری تنبل تضمین میکند که فقط منابع ضروری دانلود میشوند، مصرف پهنای باند را کاهش میدهد و به طور بالقوه در هزینههای میزبانی صرفهجویی میکند.
- مقیاسپذیری پیشرفته: معماری ماژولار امکان مقیاسگذاری مستقل میکروسرویسهای فرانتاند را فراهم میکند، زیرا هر ماژول میتواند به طور مستقل بر اساس تقاضای منابع خود مقیاسگذاری شود.
- تجربه کاربری بهتر: زمان بارگذاری سریعتر و یک برنامه پاسخگو به یک تجربه کاربری جذابتر و رضایتبخشتر کمک میکند و رضایت کاربر را بهبود میبخشد.
نحوه عملکرد ارزیابی تنبل در Module Federation
ارزیابی تنبل در Module Federation معمولاً با استفاده از ترکیبی از موارد زیر حاصل میشود:
- واردات پویا (Dynamic Imports): Module Federation از واردات پویا (
import()) برای بارگذاری ماژولهای راه دور بر حسب تقاضا استفاده میکند. این به برنامه اجازه میدهد تا بارگذاری یک ماژول را تا زمانی که صراحتاً درخواست شود، به تعویق بیندازد. - پیکربندی Webpack: وبپک، باندلر ماژول، نقش مهمی در مدیریت فدراسیون و رسیدگی به فرآیند بارگذاری تنبل ایفا میکند.
ModuleFederationPluginبرای تعریف برنامههای راه دور و ماژولهای آنها، و همچنین اینکه کدام ماژولها در دسترس قرار گرفته و مصرف میشوند، پیکربندی میشود. - حل در زمان اجرا (Runtime Resolution): در زمان اجرا، هنگامی که یک ماژول از طریق یک واردات پویا درخواست میشود، Webpack ماژول را از برنامه راه دور حل میکند و آن را در برنامه فعلی بارگذاری میکند. این شامل هرگونه حل وابستگی و اجرای کد لازم است.
کد زیر یک پیکربندی ساده شده را نشان میدهد:
// Host Application's webpack.config.js
const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');
module.exports = {
// ... other webpack configurations
plugins: [
new ModuleFederationPlugin({
name: 'hostApp',
remotes: {
remoteApp: 'remoteApp@http://localhost:3001/remoteEntry.js',
},
shared: {
// Define shared dependencies, e.g., React, ReactDOM
react: { singleton: true, requiredVersion: '^18.0.0' },
'react-dom': { singleton: true, requiredVersion: '^18.0.0' },
},
}),
],
};
در این مثال، 'hostApp' برای مصرف ماژولها از یک برنامه راه دور با نام 'remoteApp' پیکربندی شده است. پیکربندی remotes مکان فایل `remoteEntry.js` برنامه راه دور را مشخص میکند که شامل مانیفست ماژول است. گزینه shared وابستگیهای مشترکی را که باید در سراسر برنامهها استفاده شوند، مشخص میکند. بارگذاری تنبل به طور پیشفرض هنگام استفاده از واردات پویا با Module Federation فعال است. هنگامی که یک ماژول از 'remoteApp' با استفاده از `import('remoteApp/MyComponent')` وارد میشود، تنها زمانی بارگذاری خواهد شد که آن عبارت import اجرا شود.
پیادهسازی ارزیابی تنبل
پیادهسازی ارزیابی تنبل با Module Federation نیازمند برنامهریزی و اجرای دقیق است. مراحل کلیدی در ادامه توضیح داده شدهاند:
1. پیکربندی
ModuleFederationPlugin را در فایلهای `webpack.config.js` هم برنامههای میزبان و هم برنامههای راه دور پیکربندی کنید. گزینه `remotes` در برنامه میزبان مکان ماژولهای راه دور را مشخص میکند. گزینه `exposes` در برنامه راه دور ماژولهایی را که برای مصرف در دسترس هستند، مشخص میکند. گزینه `shared` وابستگیهای مشترک را تعریف میکند.
// Remote Application's webpack.config.js
const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');
module.exports = {
// ... other webpack configurations
plugins: [
new ModuleFederationPlugin({
name: 'remoteApp',
filename: 'remoteEntry.js',
exposes: {
'./MyComponent': './src/MyComponent',
},
shared: {
react: { singleton: true, requiredVersion: '^18.0.0' },
'react-dom': { singleton: true, requiredVersion: '^18.0.0' },
},
}),
],
};
2. واردات پویا
از واردات پویا (import()) برای بارگذاری ماژولهای راه دور تنها در صورت نیاز استفاده کنید. این مکانیزم اصلی برای بارگذاری تنبل در Module Federation است. مسیر واردات باید از نام برنامه راه دور و مسیر ماژول اکسپوز شده پیروی کند.
import React, { useState, useEffect } from 'react';
function HostComponent() {
const [MyComponent, setMyComponent] = useState(null);
useEffect(() => {
// Lazy load the remote component when the component mounts
import('remoteApp/MyComponent')
.then((module) => {
setMyComponent(module.default);
})
.catch((err) => {
console.error('Failed to load remote module:', err);
});
}, []);
return (
{MyComponent ? : 'Loading...'}
);
}
export default HostComponent;
3. مدیریت خطا
مدیریت خطای قوی را پیادهسازی کنید تا سناریوهایی را که در آنها ماژولهای راه دور بارگذاری نمیشوند، به خوبی مدیریت کنید. این باید شامل گرفتن خطاهای احتمالی در طول واردات پویا و ارائه پیامهای آموزنده به کاربر باشد، احتمالاً با مکانیسمهای بازگشتی. این امر تجربه کاربری مقاومتر و کاربرپسندتری را تضمین میکند، به ویژه هنگام مواجهه با مشکلات شبکه یا خرابی برنامه راه دور.
import React, { useState, useEffect } from 'react';
function HostComponent() {
const [MyComponent, setMyComponent] = useState(null);
const [error, setError] = useState(null);
useEffect(() => {
import('remoteApp/MyComponent')
.then((module) => {
setMyComponent(module.default);
})
.catch((err) => {
console.error('Failed to load remote module:', err);
setError('Failed to load component. Please try again.');
});
}, []);
if (error) {
return Error: {error};
}
return (
{MyComponent ? : 'Loading...'}
);
}
export default HostComponent;
4. تقسیم کد
ارزیابی تنبل را با تقسیم کد ترکیب کنید تا عملکرد را بیشتر بهینه کنید. با تقسیم برنامه به بخشهای کوچکتر و بارگذاری تنبل آن بخشها، میتوانید زمان بارگذاری اولیه را به طور قابل توجهی کاهش دهید.
5. وابستگیهای مشترک
وابستگیهای مشترک (به عنوان مثال، React، ReactDOM، سایر کتابخانههای ابزاری) را با دقت مدیریت کنید تا از تداخل جلوگیری کرده و رفتار سازگار در سراسر ماژولها را تضمین کنید. از گزینه `shared` در `ModuleFederationPlugin` برای تعیین وابستگیهای مشترک و الزامات نسخه آنها استفاده کنید.
6. نظارت و تست عملکرد
عملکرد برنامه، به ویژه زمان بارگذاری اولیه را به طور منظم نظارت کنید و تست عملکرد را انجام دهید تا گلوگاهها و زمینههای بهینهسازی را شناسایی کنید. ابزارهایی مانند Webpack Bundle Analyzer میتوانند به تجسم اندازه باندل و شناسایی زمینههای بهبود کمک کنند. ابزارهای نظارت بر عملکرد را برای ردیابی معیارهای کلیدی در تولید پیادهسازی کنید.
تکنیکهای پیشرفته ارزیابی تنبل
فراتر از پیادهسازی پایه، چندین تکنیک پیشرفته را میتوان برای بهبود ارزیابی تنبل در Module Federation و افزایش بیشتر عملکرد برنامه به کار گرفت. این تکنیکها کنترل و فرصتهای بهینهسازی بیشتری را فراهم میکنند.
1. بارگذاری اولیه و پیشواکشی (Preloading and Prefetching)
استراتژیهای بارگذاری اولیه و پیشواکشی میتوانند برای بارگذاری پیشگیرانه ماژولهای راه دور به کار گرفته شوند و زمان بارگذاری ادراک شده را کاهش دهند. بارگذاری اولیه به مرورگر دستور میدهد که یک ماژول را در اسرع وقت بارگذاری کند، در حالی که پیشواکشی اشاره میکند که ماژول را در پسزمینه در زمان بیکاری بارگذاری کند. این میتواند به ویژه برای ماژولهایی که احتمالاً بلافاصله پس از بارگذاری اولیه صفحه مورد نیاز خواهند بود، مفید باشد.
برای بارگذاری اولیه یک ماژول، میتوانید یک تگ پیوند با ویژگی `rel=\"modulepreload\"` در <head> HTML خود اضافه کنید، یا با استفاده از کامنتهای جادویی `preload` و `prefetch` وبپک در واردات پویا.
// Preload a remote module
import(/* webpackPreload: true */ 'remoteApp/MyComponent')
.then((module) => {
// ...
});
استفاده از استراتژیهای بارگذاری اولیه و پیشواکشی نیازمند بررسی دقیق است، زیرا استفاده نادرست میتواند منجر به هدر رفتن پهنای باند و بارگذاری غیرضروری ماژولها شود. رفتار کاربر را با دقت تحلیل کنید و بارگذاری ماژولهایی را که به احتمال زیاد مورد نیاز هستند، اولویتبندی کنید.
2. بهینهسازی مانیفست Module Federation
فایل `remoteEntry.js` که حاوی مانیفست ماژول است، میتواند برای کاهش اندازه و بهبود عملکرد بارگذاری بهینه شود. این ممکن است شامل تکنیکهایی مانند کوچکسازی (minification)، فشردهسازی و احتمالاً استفاده از CDN برای ارائه فایل باشد. اطمینان حاصل کنید که مانیفست به درستی توسط مرورگر کش میشود تا از بارگذاریهای مجدد غیرضروری جلوگیری شود.
3. بررسیهای سلامت برنامه راه دور
بررسیهای سلامت (health checks) را در برنامه میزبان پیادهسازی کنید تا قبل از اقدام به بارگذاری ماژولها، در دسترس بودن برنامههای راه دور را بررسی کنید. این رویکرد پیشگیرانه به جلوگیری از خطاها کمک میکند و تجربه کاربری بهتری را فراهم میسازد. همچنین میتوانید منطق تلاش مجدد (retry logic) با بازگشت نمایی (exponential backoff) را در صورت عدم بارگذاری یک ماژول راه دور، اضافه کنید.
4. مدیریت نسخه وابستگی
نسخهبندی وابستگیهای مشترک را با دقت مدیریت کنید تا از تداخل جلوگیری کرده و سازگاری را تضمین کنید. از ویژگی `requiredVersion` در پیکربندی `shared` افزونه `ModuleFederationPlugin` برای تعیین محدودههای نسخه قابل قبول برای وابستگیهای مشترک استفاده کنید. از نسخهبندی معنایی (semantic versioning) برای مدیریت موثر وابستگیها استفاده کنید و در نسخههای مختلف به طور کامل تست کنید.
5. بهینهسازی گروه تکه (Chunk Group Optimization)
تکنیکهای بهینهسازی گروه تکه وبپک میتوانند برای بهبود کارایی بارگذاری ماژول، به ویژه هنگامی که چندین ماژول راه دور وابستگیهای مشترک دارند، به کار گرفته شوند. استفاده از `splitChunks` را برای به اشتراک گذاشتن وابستگیها در بین چندین ماژول در نظر بگیرید.
کاربردهای واقعی ارزیابی تنبل در Module Federation
ارزیابی تنبل در Module Federation کاربردهای عملی متعددی در صنایع و موارد استفاده مختلف دارد. در اینجا چند مثال آورده شده است:
1. پلتفرمهای تجارت الکترونیک
وبسایتهای بزرگ تجارت الکترونیک میتوانند از بارگذاری تنبل برای صفحات جزئیات محصول، فرآیندهای پرداخت و بخشهای حساب کاربری استفاده کنند. بارگذاری کد برای این بخشها تنها زمانی که کاربر به آنها میرود، زمان بارگذاری اولیه صفحه و پاسخگویی را بهبود میبخشد.
تصور کنید کاربری در حال مرور صفحه فهرست محصولات است. با استفاده از بارگذاری تنبل، برنامه کد مربوط به فرآیند پرداخت را تا زمانی که کاربر روی دکمه 'افزودن به سبد خرید' کلیک کند، بارگذاری نمیکند و بارگذاری اولیه صفحه را بهینه میکند.
2. برنامههای سازمانی
برنامههای سازمانی اغلب دارای مجموعهای وسیع از ویژگیها هستند، مانند داشبوردها، ابزارهای گزارشگیری و رابطهای مدیریتی. ارزیابی تنبل اجازه میدهد تا تنها کد مورد نیاز برای یک نقش یا وظیفه کاربری خاص بارگذاری شود، که منجر به دسترسی سریعتر به ویژگیهای مربوطه و افزایش امنیت میشود.
به عنوان مثال، در یک برنامه داخلی موسسه مالی، کد مربوط به ماژول انطباق میتواند تنها زمانی بارگذاری شود که کاربری با حقوق دسترسی انطباق وارد شود، که منجر به عملکرد بهینه برای اکثر کاربران میشود.
3. سیستمهای مدیریت محتوا (CMS)
پلتفرمهای CMS میتوانند از بارگذاری تنبل افزونهها، قالبها و اجزای محتوای خود بهرهمند شوند. این امر یک رابط ویرایشگر سریع و پاسخگو را تضمین میکند و رویکردی ماژولار برای گسترش عملکرد CMS را فراهم میآورد.
یک CMS را در نظر بگیرید که توسط یک سازمان خبری جهانی استفاده میشود. ماژولهای مختلف ممکن است بر اساس نوع مقاله (مانند اخبار، نظرات، ورزش) بارگذاری شوند، که رابط ویرایشگر را برای هر نوع بهینه میکند.
4. برنامههای تکصفحهای (SPAs)
برنامههای تکصفحهای میتوانند با استفاده از بارگذاری تنبل برای مسیرها و نماهای مختلف، عملکرد را به طور قابل توجهی بهبود بخشند. بارگذاری تنها کد برای مسیر فعال فعلی تضمین میکند که برنامه پاسخگو باقی میماند و تجربه کاربری روانی را ارائه میدهد.
به عنوان مثال، یک پلتفرم رسانه اجتماعی میتواند کد مربوط به نمای 'پروفایل'، نمای 'فید خبری' و بخش 'پیامرسانی' را به صورت تنبل بارگذاری کند. این استراتژی منجر به بارگذاری اولیه سریعتر صفحه و بهبود عملکرد کلی برنامه میشود، به ویژه زمانی که کاربر بین بخشهای مختلف پلتفرم پیمایش میکند.
5. برنامههای چندمستاجری (Multi-tenant Applications)
برنامههایی که به چندین مستاجر خدمات میدهند میتوانند از بارگذاری تنبل برای بارگذاری ماژولهای خاص برای هر مستاجر استفاده کنند. این رویکرد تضمین میکند که تنها کد و پیکربندیهای لازم برای هر مستاجر بارگذاری میشوند و عملکرد را بهبود میبخشد و اندازه کلی باندل را کاهش میدهد. این امر برای برنامههای SaaS رایج است.
یک برنامه مدیریت پروژه را در نظر بگیرید که برای استفاده توسط چندین سازمان طراحی شده است. هر مستاجر میتواند مجموعه ویژگیها، ماژولها و برندسازی سفارشی خود را داشته باشد. با استفاده از بارگذاری تنبل، برنامه تنها کد مربوط به ویژگیها و سفارشیسازیهای خاص هر مستاجر را در صورت نیاز بارگذاری میکند و عملکرد را بهبود میبخشد و سربار را کاهش میدهد.
بهترین روشها و ملاحظات
در حالی که ارزیابی تنبل با Module Federation مزایای قابل توجهی را فراهم میکند، رعایت بهترین روشها برای اطمینان از عملکرد بهینه و قابلیت نگهداری ضروری است.
1. برنامهریزی و معماری دقیق
معماری برنامه را با دقت طراحی کنید تا مشخص شود کدام ماژولها باید بر حسب تقاضا بارگذاری شوند و کدام یک باید از ابتدا بارگذاری شوند. گردش کار معمول کاربر و مسیرهای حیاتی را برای اطمینان از بهترین تجربه کاربری ممکن در نظر بگیرید.
2. نظارت و تست عملکرد
به طور مداوم عملکرد برنامه را نظارت کنید تا گلوگاهها و زمینههای بهبود را شناسایی کنید. تست عملکرد منظم را انجام دهید تا اطمینان حاصل شود که برنامه پاسخگو باقی میماند و تحت بارگذاری به خوبی عمل میکند.
3. مدیریت وابستگی
وابستگیهای مشترک را با دقت مدیریت کنید تا از تداخل نسخهها جلوگیری کرده و سازگاری بین ماژولها را تضمین کنید. از یک مدیر بسته مانند npm یا yarn برای مدیریت وابستگیها استفاده کنید.
4. کنترل نسخه و CI/CD
از روشهای قوی کنترل نسخه استفاده کنید و یک خط لوله یکپارچهسازی مداوم و استقرار مداوم (CI/CD) را برای خودکارسازی ساخت، آزمایش و استقرار ماژولها پیادهسازی کنید. این امر خطر خطای انسانی را کاهش میدهد و استقرار سریع بهروزرسانیها را تسهیل میکند.
5. ارتباط و همکاری
ارتباط و همکاری واضح بین تیمهای مسئول ماژولهای مختلف را تضمین کنید. API و هرگونه وابستگی مشترک را به وضوح مستند کنید تا از یکپارچگی اطمینان حاصل شود و مشکلات احتمالی یکپارچهسازی کاهش یابد.
6. استراتژیهای کشینگ
استراتژیهای کشینگ کارآمد را برای کش کردن ماژولهای بارگذاری شده و به حداقل رساندن تعداد درخواستهای شبکه پیادهسازی کنید. از کشینگ مرورگر و استفاده از CDN برای بهینهسازی تحویل محتوا و کاهش تاخیر بهره ببرید.
ابزارها و منابع
چندین ابزار و منبع برای کمک به پیادهسازی و مدیریت Module Federation و ارزیابی تنبل در دسترس هستند:
- Webpack: باندلر اصلی و بنیان Module Federation.
- Module Federation Plugin: پلاگین وبپک برای پیکربندی و استفاده از Module Federation.
- Webpack Bundle Analyzer: ابزاری برای تجسم اندازه و محتویات باندلهای وبپک.
- ابزارهای نظارت بر عملکرد (مانند New Relic, Datadog): ردیابی معیارهای کلیدی عملکرد و شناسایی گلوگاههای احتمالی.
- مستندات: مستندات رسمی وبپک و آموزشهای آنلاین مختلف.
- انجمنها و وبلاگهای جامعه: برای پشتیبانی و یادگیری از سایر توسعهدهندگان با جامعه تعامل داشته باشید.
نتیجهگیری
ارزیابی تنبل با JavaScript Module Federation یک تکنیک قدرتمند برای بهینهسازی عملکرد برنامههای وب، بهبود تجربه کاربری و ساخت برنامههای ماژولارتر و قابل نگهداریتر است. با بارگذاری ماژولها بر حسب تقاضا، برنامهها میتوانند زمان بارگذاری اولیه را به طور قابل توجهی کاهش دهند، پاسخگویی را بهبود بخشند و استفاده از منابع را بهینه کنند. این امر به ویژه برای برنامههای وب بزرگ و پیچیدهای که توسط تیمهای پراکنده جغرافیایی توسعه و نگهداری میشوند، مرتبط است. با افزایش پیچیدگی برنامههای وب و افزایش تقاضا برای تجربیات سریعتر و کارآمدتر، Module Federation و ارزیابی تنبل برای توسعهدهندگان در سراسر جهان اهمیت فزایندهای پیدا خواهند کرد.
با درک مفاهیم، پیروی از بهترین روشها و استفاده از ابزارها و منابع موجود، توسعهدهندگان میتوانند از پتانسیل کامل ارزیابی تنبل با Module Federation بهره ببرند و برنامههای وب بسیار کارآمد و مقیاسپذیری ایجاد کنند که نیازهای همیشه در حال تحول مخاطبان جهانی را برآورده سازند. قدرت حل ماژول بر حسب تقاضا را بپذیرید و نحوه ساخت و استقرار برنامههای وب خود را متحول کنید.